imcontext: Enable font fallback for preedit
authorMatthias Clasen <mclasen@redhat.com>
Thu, 18 Feb 2021 03:08:43 +0000 (22:08 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 18 Feb 2021 03:11:57 +0000 (22:11 -0500)
Not doing so only invites hexboxes.

Fixes: #3678
gtk/gtkimcontextsimple.c
gtk/gtkimcontextwayland.c

index 701e433c1908ef41e23f1b790dd3e6b79ddd3b13..b8fec2f384113cd2a44f9a0c9127cde8a6e2e955 100644 (file)
@@ -945,7 +945,14 @@ gtk_im_context_simple_get_preedit_string (GtkIMContext   *context,
 
       if (s->len)
         {
-          PangoAttribute *attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE);
+          PangoAttribute *attr;
+
+          attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE);
+          attr->start_index = 0;
+          attr->end_index = s->len;
+          pango_attr_list_insert (*attrs, attr);
+
+          attr = pango_attr_fallback_new (TRUE);
           attr->start_index = 0;
           attr->end_index = s->len;
           pango_attr_list_insert (*attrs, attr);
index 77264087ebf2a6d3957c1b6bce869b39d8e5667f..c5e0093584282803b8804ec51aa2f91ba4be90dd 100644 (file)
@@ -610,6 +610,9 @@ gtk_im_context_wayland_get_preedit_string (GtkIMContext   *context,
         *attrs = pango_attr_list_new ();
       pango_attr_list_insert (*attrs,
                               pango_attr_underline_new (PANGO_UNDERLINE_SINGLE));
+      /* enable fallback, since IBus will send us things like ⎄ */
+      pango_attr_list_insert (*attrs,
+                              pango_attr_fallback_new (TRUE));
       if (context_wayland->current_preedit.cursor_begin
           != context_wayland->current_preedit.cursor_end)
         {